package com.xxx.yuedong.community.db.dao;

import com.xxx.yuedong.community.controller.form.DynamicLikeForm;
import com.xxx.yuedong.community.pojo.Dynamic;
import com.xxx.yuedong.community.pojo.DynamicLike;
import com.xxx.yuedong.community.pojo.LikeUser;
import com.xxx.yuedong.mine.pojo.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 动态点赞表的接口
 * 之后合并到DynamicDao中
 *
 * @Author YinXi
 * @Versin 1.0.0
 * @Date 2023/8/4
 */
@Mapper
public interface DynamicLikeDao {
    /**
     * 批量新增点赞者id和动态id到tb_dynamic_like
     */
    int insertDynamicLike(List<DynamicLikeForm> dynamicLikeForms);
    /**
     * 根据点赞者id和动态id批量删除数据
     */
    int deleteDynamicLike(List<DynamicLikeForm> dynamicLikeForms);

    /**
     * 根据点赞者id和动态id查询是否存在对应的DynamicLike
     */
    DynamicLike selectDynamicLikeForm(DynamicLikeForm form);

    /**
     * 根据动态id查询对应的点赞者数量
     */
    Integer countByDynamicId(Long dynamicId);

    /**
     * 根据动态id查询该条动态
     */
    Dynamic selectByDynamicId(Long dynamicId);

    /**
     * 根据动态id查询该条动态的前4名点赞者相关信息
     */
    List<LikeUser> selectAllByDynamicId(Long dynamicId);
    /**
     * 根据用户id获取该用户id对应的Dynamic
     */
    List<Dynamic> selectDynamicLikeByUserId(Long userId);
    /**
     * 查询动态点赞列表
     */
    List<DynamicLike> selectAllDynamicLike();

    /**
     * 查询喜欢列表
     */
    List<Dynamic> selectDynamicLike();
}
